package com.itany.corejava.code07_面向对象;

import java.util.Scanner;

/**
 * @author 石小俊
 * 2024年07月12日 16:44
 */
public class Test06_练习 {

    public static void main(String[] args) {
        showMenu();
    }

    public static void showMenu() {
        Scanner sc = new Scanner(System.in);
        System.out.println("*****************欢迎使用学生管理系统*****************");

        Stu[] stus = new Stu[100];
        while (true) {
            System.out.print("请选择服务(1.录入学生信息 2.展示学生信息 3.退出):");
            int choice = sc.nextInt();
            switch (choice) {
                case 1:
                    stus = Stu.inputInfo();
                    break;
                case 2:
                    Stu.show(stus);
                    break;
                case 3:
                    System.out.println("提示:您已经退出,欢迎下次光临");
                    return;
                default:
                    System.out.println("错误:您输入的选项有误,请重新输入");
                    break;
            }
        }
    }
}

class Stu {
    String name;
    int age;
    String gender;
    String major;
    String classNo;

    // 1.录入学生信息
    // 控制台输入需要录入几个学生,创建对应的学生对象,将创建的对象存放到对象数组中Stu[]
    // 根据控制台的提示录入每一名学生的所有属性
    public static Stu[] inputInfo() {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入学生数量:");
        int num = sc.nextInt();
        Stu[] stus = new Stu[num];
        for (int i = 0; i < stus.length; i++) {
            System.out.println("************************开始录入第" + (i + 1) + "名学生信息************************");
            // 每次录入学生信息,需要创建一个新的学生对象
            Stu stu = new Stu();
            // 开始录入学生相关的属性
            System.out.print("请输入学生姓名:");
            stu.name = sc.next();
            System.out.print("请输入学生年龄:");
            stu.age = sc.nextInt();
            System.out.print("请输入学生性别:");
            stu.gender = sc.next();
            System.out.print("请输入学生专业:");
            stu.major = sc.next();
            System.out.print("请输入学生班级:");
            stu.classNo = sc.next();
            // 数据录入完成之后,将当前创建的对象添加到对象数组中
            stus[i] = stu;
        }
        return stus;
    }

    // 2.展示所有学生的信息
    // 姓名   年龄  性别  专业      班级
    // admin  18    男    计算机    wbs24071
    // ....
    public static void show(Stu[] stus) {
        System.out.println("姓名\t年龄\t性别\t专业\t班级");
        for (Stu stu : stus) {
            System.out.println(stu.name + "\t" + stu.age + "\t" + stu.gender + "\t" + stu.major + "\t" + stu.classNo);
        }
    }
}